﻿using BoldBrick.OneIntranet.HR.Properties;
using BoldBrick.OneIntranet.HR.Resources;
using BoldBrick.SharePoint.CommonControls.DataObjects.Base;

namespace BoldBrick.OneIntranet.HR.DataObjects
{
	/// <summary>
	/// Class with metadata for site columns
	/// </summary>
	public static class SiteColumns
	{
		#region ------ Position Name "Title" Columns ----------------------------------------------

		public static ListColumn PositionNameColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_PositionName_DisplayName",
					"Title");
			}
		}

		public static ListColumn PositionNameNoMenuColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_PositionName_DisplayName",
					"LinkTitleNoMenu");
			}
		}

		public static ListColumn PositionNameWithMenuColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_PositionName_DisplayName",
					"LinkTitle");
			}
		}

		#endregion

		#region ------ Source Name "Title" Columns ------------------------------------------------

		public static ListColumn SourceNameColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_SourceName_DisplayName",
					"Title");
			}
		}

		public static ListColumn SourceNameNoMenuColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_SourceName_DisplayName",
					"LinkTitleNoMenu");
			}
		}

		public static ListColumn SourceNameWithMenuColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_SourceName_DisplayName",
					"LinkTitle");
			}
		}

		#endregion

		#region ------ Seniority "Title" Columns --------------------------------------------------

		public static ListColumn SeniorityColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_Seniority_DisplayName",
					"Title");
			}
		}

		public static ListColumn SeniorityNoMenuColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_Seniority_DisplayName",
					"LinkTitleNoMenu");
			}
		}

		public static ListColumn SeniorityWithMenuColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_Seniority_DisplayName",
					"LinkTitle");
			}
		}

		#endregion
		
		#region ------ Employment Type "Title" Columns --------------------------------------------

		public static ListColumn EmploymentTypeColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_EmploymentType_DisplayName",
					"Title");
			}
		}

		public static ListColumn EmploymentTypeNoMenuColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_EmploymentType_DisplayName",
					"LinkTitleNoMenu");
			}
		}

		public static ListColumn EmploymentTypeWithMenuColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_EmploymentType_DisplayName",
					"LinkTitle");
			}
		}

		#endregion
		
		#region ------ Document Type "Title" Columns ----------------------------------------------

		public static ListColumn DocumentTypeColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_DocumentType_DisplayName",
					"Title");
			}
		}

		public static ListColumn DocumentTypeNoMenuColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_DocumentType_DisplayName",
					"LinkTitleNoMenu");
			}
		}

		public static ListColumn DocumentTypeWithMenuColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_DocumentType_DisplayName",
					"LinkTitle");
			}
		}

		#endregion
		
		#region ------ Language "Title" Columns ---------------------------------------------------

		public static ListColumn LanguageColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_Lanugage_DisplayName",
					"Title");
			}
		}

		public static ListColumn LanguageNoMenuColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_Lanugage_DisplayName",
					"LinkTitleNoMenu");
			}
		}

		public static ListColumn LanguageWithMenuColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_Lanugage_DisplayName",
					"LinkTitle");
			}
		}

		#endregion
		
		#region ------ Language "Title" Columns ---------------------------------------------------

		public static ListColumn TestTypeColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_TestType_DisplayName",
					"Title");
			}
		}

		public static ListColumn TestTypeNoMenuColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_TestType_DisplayName",
					"LinkTitleNoMenu");
			}
		}

		public static ListColumn TestTypeWithMenuColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_TestType_DisplayName",
					"LinkTitle");
			}
		}

		#endregion
		
		#region ------ Candidate "Title" Columns --------------------------------------------------

		

		#endregion

		#region ------ Custom Columns -------------------------------------------------------------

		public static ListColumn JobDescriptionColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_JobDescription_DisplayName",
					Settings.Default.Field_JobDescription_InternalName);
			}
		}

		public static ListColumn JobRequirementsColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_JobRequirements_DisplayName",
					Settings.Default.Field_JobRequirements_InternalName);
			}
		}

		public static ListColumn EmploymentTypesLookupColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_EmploymentTypesLookup_DisplayName",
					Settings.Default.Field_EmploymentTypesLookup_InternalName);
			}
		}

		public static ListColumn SalaryRangeFromColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_SalaryRangeFrom_DisplayName",
					Settings.Default.Field_SalaryRangeFrom_InternalName);
			}
		}

		public static ListColumn SalaryRangeToColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_SalaryRangeTo_DisplayName",
					Settings.Default.Field_SalaryRangeTo_InternalName);
			}
		}

		public static ListColumn VacanciesColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_Vacancies_DisplayName",
					Settings.Default.Field_Vacancies_InternalName);
			}
		}

		public static ListColumn OpenFromColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_OpenFrom_DisplayName",
					Settings.Default.Field_OpenFrom_InternalName);
			}
		}

		public static ListColumn ClosedOnColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_ClosedOn_DisplayName",
					Settings.Default.Field_ClosedOn_InternalName);
			}
		}

		public static ListColumn HiredColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_PositionHired_DisplayName",
					Settings.Default.Field_PositionHired_InternalName);
			}
		}

		public static ListColumn VacanciesRemainingColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_VacanciesRemaining_DisplayName",
					Settings.Default.Field_VacanciesRemaining_InternalName);
			}
		}

		public static ListColumn SourceLookupColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_SourceLookup_DisplayName",
					Settings.Default.Field_SourceLookup_InternalName);
			}
		}

		public static ListColumn SeniorityLevelLookupColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_SeniorityLevelLookup_DisplayName",
					Settings.Default.Field_SeniorityLevelLookup_InternalName);
			}
		}

		public static ListColumn DocumentTypeLookupColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_DocumentTypeLookup_DisplayName",
					Settings.Default.Field_DocumentTypeLookup_InternalName);
			}
		}
		
		public static ListColumn LanguageLookupColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_LanguageLookup_DisplayName",
					Settings.Default.Field_LanguageLookup_InternalName);
			}
		}
		
		public static ListColumn TestTypeLookupColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_TestTypeLookup_DisplayName",
					Settings.Default.Field_TestTypeLookup_InternalName);
			}
		}

		public static ListColumn CandidateEmailColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_CandidateEmail_DisplayName",
					Settings.Default.Field_CandidateEmail_InternalName);
			}
		}

		public static ListColumn CandidatePhoneNumberColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_CandidatePhoneNumber_DisplayName",
					Settings.Default.Field_CandidatePhoneNumber_InternalName);
			}
		}

		public static ListColumn SalaryExpectationColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_SalaryExpectation_DisplayName",
					Settings.Default.Field_SalaryExpectation_InternalName);
			}
		}

		public static ListColumn LinkedInProfileColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_LinkedInProfile_DisplayName",
					Settings.Default.Field_LinkedInProfile_InternalName);
			}
		}

		public static ListColumn FacebookProfileColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_FacebookProfile_DisplayName",
					Settings.Default.Field_FacebookProfile_InternalName);
			}
		}

		public static ListColumn BlogLinkColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_BlogLink_DisplayName",
					Settings.Default.Field_BlogLink_InternalName);
			}
		}

		public static ListColumn OtherInternetLinkColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_OtherInternetLink_DisplayName",
					Settings.Default.Field_OtherInternetLink_InternalName);
			}
		}

		public static ListColumn PositionLookupColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_PositionLookup_DisplayName",
					Settings.Default.Field_PositionLookup_InternalName);
			}
		}

		public static ListColumn SalaryOfferedColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_SalaryOffered_DisplayName",
					Settings.Default.Field_SalaryOffered_InternalName);
			}
		}

		public static ListColumn CandidateResultColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_CandidateResult_DisplayName",
					Settings.Default.Field_CandidateResult_InternalName);
			}
		}

		public static ListColumn TestResultPointsColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_TestResultPoints_DisplayName",
					Settings.Default.Field_TestResultPoints_InternalName);
			}
		}
		
		public static ListColumn TestResultPointsMaxColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_TestResultPointsMax_DisplayName",
					Settings.Default.Field_TestResultPointsMax_InternalName);
			}
		}

		public static ListColumn TestResultPercentageColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_TestResultPercentage_DisplayName",
					Settings.Default.Field_TestResultPercentage_InternalName);
			}
		}

		public static ListColumn ResultSummaryColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_ResultSummary_DisplayName",
					Settings.Default.Field_ResultSummary_InternalName);
			}
		}

		public static ListColumn InterviewerColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_Interviewer_DisplayName",
					Settings.Default.Field_Interviewer_InternalName);
			}
		}

		public static ListColumn ReferenceCompanyColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_ReferenceCompany_DisplayName",
					Settings.Default.Field_ReferenceCompany_InternalName);
			}
		}

		public static ListColumn ReferenceNameColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_ReferenceName_DisplayName",
					Settings.Default.Field_ReferenceName_InternalName);
			}
		}

		public static ListColumn ReferencePositionColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_ReferencePosition_DisplayName",
					Settings.Default.Field_ReferencePosition_InternalName);
			}
		}

		public static ListColumn TaskOwnerColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_TaskOwner_DisplayName",
					Settings.Default.Field_TaskOwner_InternalName);
			}
		}

		public static ListColumn WorkflowStepOrderColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_WorkflowStepOrder_DisplayName",
					Settings.Default.Field_WorkflowStepOrder_InternalName);
			}
		}

		public static ListColumn TaskContentTypeLookupColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_TaskContentTypeLookup_DisplayName",
					Settings.Default.Field_TaskContentTypeLookup_InternalName);
			}
		}

		public static ListColumn ResultContentTypeLookupColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_ResultContentTypeLookup_DisplayName",
					Settings.Default.Field_ResultContentTypeLookup_InternalName);
			}
		}

		public static ListColumn TasksListLookupColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_TasksListLookup_DisplayName",
					Settings.Default.Field_TasksListLookup_InternalName);
			}
		}

		public static ListColumn WorkflowPositionLookupColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_WorkflowPositionLookup_DisplayName",
					Settings.Default.Field_WorkflowPositionLookup_InternalName);
			}
		}

		public static ListColumn TaskDescriptionColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_TaskDescription_DisplayName",
					Settings.Default.Field_TaskDescription_InternalName);
			}
		}

		public static ListColumn TaskTitleColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_TaskTitle_DisplayName",
					Settings.Default.Field_TaskTitle_InternalName);
			}
		}
		
		public static ListColumn HRWorkflowStatusColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Workflow_HRWorkflow_Title",
					Settings.Default.Field_HRWorkflowStatus_InternalName);
			}
		}

		public static ListColumn SendEmailColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_SendEmail_DisplayName",
					Settings.Default.Field_SendEmail_InternalName);
			}
		}

		public static ListColumn LastNameColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_LastName_DisplayName",
					Settings.Default.Field_LastName_InternalName);
			}
		}
		
		public static ListColumn FirstNameColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_FirstName_DisplayName",
					Settings.Default.Field_FirstName_InternalName);
			}
		}

		public static ListColumn CancelIfNoHireColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_CancelIfNoHire_DisplayName",
					Settings.Default.Field_CancelIfNoHire_InternalName);
			}
		}

		public static ListColumn CommunicationLanguageColumn
		{
			get
			{
				return new ListColumn(
					ResourceBuilder.ResourceFileName,
					"Field_CommunicationLanguage_DisplayName",
					Settings.Default.Field_CommunicationLanguage_InternalName);
			}
		}

		#endregion
	}

}
